/**
 * 
 */
package com.enjoyor.soa.traffic.api.service.dubbo.ovms;

import com.enjoyor.soa.traffic.api.dto.ovms.LogUserDto;
import com.enjoyor.soa.traffic.api.dto.ovms.ViolationInfoDto;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @author ly 违法数据操作
 *
 */
public interface DubboViolationProcessService {

	/**
	 * 记录违法数据，人工录入
	 * 
	 * @param token
	 * @param systemKey
	 * @param violation
	 *            违法实体
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo RecordViolation(String token, String systemKey, LogUserDto logUser, ViolationInfoDto violation);

	/**
	 * 人工录入无效数据
	 * 
	 * @param token
	 * @param systemKey
	 * @param violation
	 *            违法实体
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo RecordDisuseViolation(String token, String systemKey, LogUserDto logUser,
			ViolationInfoDto violation);

	/**
	 * 违法预处理
	 * 
	 * @param token
	 * @param systemKey
	 * @param handle
	 *            预处理修改内容
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo HandleViolation(String token, String systemKey, LogUserDto logUser, ViolationInfoDto violation);

	/**
	 * 违法审核
	 * 
	 * @param token
	 * @param systemKey
	 * @param review
	 *            审核修改内容
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo ReviewViolation(String token, String systemKey, LogUserDto logUser, ViolationInfoDto violation);

	/**
	 * 预处理拒绝
	 * 
	 * @param token
	 * @param systemKey
	 * @param violation_id
	 *            违法编号
	 * @param refuse_reason
	 *            拒绝原因
	 * @return
	 */
	public ResultPojo RefuseHandle(String token, String systemKey, LogUserDto logUser, String violation_id,
			String refuse_reason);

	/**
	 * 审核拒绝
	 * 
	 * @param token
	 * @param systemKey
	 * @param violation_id
	 *            违法编号
	 * @param refuse_reason
	 *            拒绝原因
	 * @return
	 */
	public ResultPojo RefuseReview(String token, String systemKey, LogUserDto logUser, String violation_id,
			String refuse_reason);

	/**
	 * 违法数据上传
	 * 
	 * @param token
	 * @param systemKey
	 * @param violation_id
	 *            违法编号
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo UploadViolation(String token, String systemKey, LogUserDto logUser, String violation_id);

	/**
	 * 获取违法编号对应的操作流程
	 * 
	 * @param token
	 * @param systemkey
	 * @param violation_id
	 *            违法编号
	 * @param process
	 *            操作过程
	 * @return
	 */
	public ResultPojo getViolationProcess(String token, String systemkey, LogUserDto logUser, String violation_id);

	/**
	 * 记录为套牌车记录
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violation_id
	 * @return
	 */
	public ResultPojo setViolationClone(String token, String systemkey, LogUserDto logUser, String violation_id);

	/**
	 * 设置为在使用
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violation_id
	 * @return
	 */
	public ResultPojo inuseViolation(String token, String systemkey, LogUserDto logUser, String violation_id);

	/**
	 * 设置为未使用
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violation_id
	 * @return
	 */
	public ResultPojo disuseViolation(String token, String systemkey, LogUserDto logUser, String violation_id);

	/**
	 * 查询是否在使用
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param violation_id
	 * @return
	 */
	public ResultPojo isuseViolation(String token, String systemkey, LogUserDto logUser, String violation_id);
}
